Methods and systems for encoding/decoding files and transmissions thereof

ABSTRACT

In one embodiment, the instant invention includes a computer system that includes at least the following components: a) a first computer that performs, in concurrent manner, at least the following tasks: dividing a computer file into a plurality of segments, compressing segments, and sending the compressed segments to a second computer over a network; b) the second computer that performs, in concurrent manner, at least the following tasks: decompressing the compressed segments and assembling the decompressed segment to reconstruct the computer file, where the compressing task performed by the first computer and the decompressing task performed by the second computer are synchronized and performed concurrently.

RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.13/968,615, filed Aug. 16, 2013, which is a continuation of U.S. patentapplication Ser. No. 13/354,550, filed Jan. 20, 2012 which is acontinuation of U.S. patent application Ser. No. 13/214,162, filed Aug.20, 2011, now abandoned, which claims the benefit of U.S. provisionalapplication Serial No. 61/375,521, entitled “METHODS AND SYSTEMS FORENCODING/DECODING FILES AND TRANSMISSION THEREOF,” was filed Aug. 20,2010. All related applications are hereby incorporated by referenceherein in their entirety for all purposes.

TECHNICAL FIELD

The present invention relates to methods and systems for enablingcompression and transfer of large electronic files from one location toanother.

BACKGROUND

Typically, transfer of large size data, from several MBs to several TBs,can take hours over conventional networks, be expensive and strain thenetwork resources. Typically, a transfer of large size data may involvea plurality of recipient computers. Typically, compression of large sizedata, from several MBs to several TBs, can take hours and may result inloss of some data.

SUMMARY OF INVENTION

One embodiment of the invention is related to methods and systems forenabling a sender computer system to compress/encode at least oneelectronic file and to initiate a transmission of at least some part ofthe compressed portion of the file while the compression of theremaining portion of the file is still being performed.

One embodiment of the invention is related to methods and systems forenabling a recipient computer system to begin uncompressing/decodingreceived portions of a compressed electronic file and/orassembly/manipulate the uncompressed and received portion of the fileprior to the recipient computer system receiving the remaining portionsof the file (i.e., before the total transmission of the compressed fileto the recipient computer system is complete.)

One embodiment of the invention is related to methods and systems forenabling a sender computer system to transmit at least a portion of acompressed/encoded file from the sender computer system to at least onerecipient computer system and/or direct a transmission of thecompressed/encoded portions of the transmitted file among a plurality ofrecipient computer systems

In some embodiments, the instant invention includes acomputer-implemented method that includes at least steps of: a)dividing, by a first computer, a computer file into at least one firstsegment and a first remainder of the computer file; b) compressing, by asecond computer, the at least one first segment wherein, in concurrentmanner, the second computer compresses the at least one first segmentand the first computer divides the first remainder of the computer fileinto at least one second segment and a second remainder of the computerfile; c) sending, by a third computer, the at least one first compressedsegment to at least one recipient machine wherein, in concurrent manner,the third computer sends the at least one first compressed segment, thesecond computer compresses the at least one second segment, and thefirst computer divides the second remainder of the computer file into atleast one third segment and a third remainder of the computer file; d)receiving, by a fourth computer of the recipient machine, the at leastone first compressed segment wherein, in concurrent manner, the fourthcomputer of the recipient machine receives the at least one firstcompressed segment, the first computer divides the third remainder ofthe computer file into at least one fourth segment and a fourthremainder of the computer file, the second computer compresses the atleast one third compressed segment, and the third computer sends the atleast one second compressed segment; e) decompressing, by a fifthcomputer of the recipient machine, the at least one first receivedcompressed segment wherein, in concurrent manner, the fifth computer ofthe recipient machine decompresses the at least one first receivedcompressed segment, the first computer divides the fourth remainder ofthe computer file into at least one fifth segment and a fifth remainderof the computer file, the second computer compresses the at least onefourth segment, the third computer sends the at least one thirdcompressed segment, and the fourth computer of the recipient machinereceives the at least one second compressed segment; f) decompressing,by the fifth computer of the recipient machine, the at least one secondreceived compressed segment wherein, in concurrent manner, the fifthcomputer of the recipient machine decompresses the at least one secondreceived compressed segment and the fourth computer of the recipientmachine receives the at least one third compressed segment and whereinthe compressing step and the decompressing are synchronized; and g)assembling, by a sixth computer of the recipient machine, the at leastone first decompressed segment and the at least one second decompressedsegment to reconstruct the computer file wherein, in concurrent manner,the sixth computer of the recipient machine assembles the at least onefirst decompressed segment and the at least one second decompressedsegment, the fifth computer of the recipient machine decompresses the atleast one third received compressed segment, and the fourth computer ofthe recipient machine receives the at least one fourth compressedsegment.

In some embodiments, the compressing, by the second computer, is by atleast applying at least one lossless algorithm (e.g., LZMA, Crush,Lz/lb, Lagarith, etc.) and wherein decompressing, by the fifth computerof the recipient machine, is by at least applying the at least onelossless algorithm with which the file has been compressed.

In some embodiments, the instant invention includes acomputer-implemented method that includes at least steps of: a)dividing, by a first computer, a computer image file into at least onefirst segment and a first remainder of the computer file, wherein the atleast one first segment comprise a plurality of frames and wherein thecomputer image file is a video file or an aggregation of static imagefiles; b) compressing, by a second computer, the at least one firstsegment wherein the compressing includes at least the following stepsof: 1) selecting a key frame from the plurality of frames of the atleast one first segment, 2) comparing the key frame to each of theremaining frames from the plurality of frames of the at least one firstsegment, wherein the comparison is performed frame-by-frame based atleast in part on: a) actual content of each frame and b) an entire framebasis, 3) encoding, if a standard deviation of all pixel differences inluminance channel between the key frame is less than a pre-determinevalue, at least one frame of the remaining frames as at least onedeference frame, wherein the at least one deference frame identifies atleast one difference between the key frame and the encoded frame of theremaining frames, 4) applying lossy compression to the key frame and thedeference frames of the plurality of frames of the at least one firstsegment, wherein the lossy compression is multiscale wavelet compressionand comprising Human Visual Systems (HVS) filtering to stretch out tonesin the key frame and the deference frames of the plurality of frames ofthe at least one first segment, and 5) applying, after the lossycompression, a signal to noise ratio processing to the key frame and thedeference frames of the plurality of frames of the at least one firstsegment; and c) decompressing, by a third computer, the plurality offrames of the at least one first segment wherein the decompressing isperformed in a inverse order of the compressing steps (c) (1) through(c)(5).

In some embodiments, the instant invention includes acomputer-implemented method that includes at least steps of: a)dividing, by a sending computer, a first computer file into at least onefirst segment and a first remainder of the computer file, wherein thefirst computer file having a first computer format; b) compressing, bythe sending computer, the at least one first segment; c) transmitting,by the sending computer, the at least one first compressed segment to arecipient machine; d) dividing, by a sending computer, the firstremainder of the computer file into at least one second segment; e)compressing, by the sending computer, the at least one second segment;f) transmitting, by the sending computer, over a network, the at leastone second compressed segment to a recipient computer; g) decompressing,by the recipient computer, the at least one first compressed segmentinto at least one first decompressed segment; h) transcoding, by therecipient computer, the at least one first decompressed segment into atleast one first converted segment having a second computer format; j)decompressing, by the recipient computer, the at least one secondcompressed segment into at least one second decompressed segment; i)transcoding, by the recipient computer, the at least one seconddecompressed segment into at least one second converted segment havingthe second computer format; and k) assembling, by the recipientcomputer, the at least one first converted segment and the at least onesecond converted segment into a second computer file having the secondcomputer format, wherein the first computer file and the second computerfile have the same content and wherein the first computer format and thesecond computer format are different. In some embodiments, the steps (h)and (i) are performed in concurrent manner.

In some embodiments, the instant invention includes a computer systemthat includes at least the following components: a) a first computerthat divides a computer file into at least one first segment and a firstremainder of the computer file; b) a second computer that compresses theat least one first segment wherein, in concurrent manner, the secondcomputer compresses the at least one first segment and the firstcomputer divides the first remainder of the computer file into at leastone second segment and a second remainder of the computer file; c) athird computer that sends the at least one first compressed segment toat least one recipient machine wherein, in concurrent manner, the thirdcomputer sends the at least one first compressed segment, the secondcomputer compresses the at least one second segment, and the firstcomputer divides the second remainder of the computer file into at leastone third segment and a third remainder of the computer file; d) afourth computer of the recipient machine that receives the at least onefirst compressed segment wherein, in concurrent manner, the fourthcomputer of the recipient machine receives the at least one firstcompressed segment, the first computer divides the third remainder ofthe computer file into at least one fourth segment and a fourthremainder of the computer file, the second computer compresses the atleast one third compressed segment, and the third computer sends the atleast one second compressed segment; e) a fifth computer of therecipient machine that decompresses the at least one first receivedcompressed segment wherein, in concurrent manner, the fifth computer ofthe recipient machine decompresses the at least one first receivedcompressed segment, the first computer divides the fourth remainder ofthe computer file into at least one fifth segment and a fifth remainderof the computer file, the second computer compresses the at least onefourth segment, the third computer sends the at least one thirdcompressed segment, and the fourth computer of the recipient machinereceives the at least one second compressed segment, wherein, inconcurrent manner, the fifth computer of the recipient machinedecompresses the at least one second received compressed segment and thefourth computer of the recipient machine receives the at least one thirdcompressed segment, and wherein the compression by the second computerand the decompression by the fifth computer of the recipient machine aresynchronized; and g) a sixth computer of the recipient machine thatassembles the at least one first decompressed segment and the at leastone second decompressed segment to reconstruct the computer file,wherein, in concurrent manner, the sixth computer of the recipientmachine assembles the at least one first decompressed segment and the atleast one second decompressed segment, the fifth computer of therecipient machine decompresses the at least one third receivedcompressed segment, and the fourth computer of the recipient machinereceives the at least one fourth compressed segment. In someembodiments, the second computer applies at least one lossless algorithm(e.g., LZMA, Crush, Lz/lb, Lagarith, etc.) for the compression andwherein the fifth computer of the recipient machine applies the at leastone lossless algorithm for the decompression with which the file hasbeen compressed.

In some embodiments, the instant invention includes a computer systemthat includes at least the following components: a) a first computerthat divides a computer image file into at least one first segment and afirst remainder of the computer file, wherein the at least one firstsegment comprise a plurality of frames and wherein the computer imagefile is a video file or an aggregation of static image files; b) asecond computer that compresses the at least one first segment whereinthe second computer comprising at least one programmed processor forexecuting the computer executable program code stored in a memory,wherein the computer executable program code that at least include: 1)code to select a key frame from the plurality of frames of the at leastone first segment, 2) code to compare the key frame to each of theremaining frames from the plurality of frames of the at least one firstsegment, wherein the comparison is performed frame-by-frame based atleast in part on: a) actual content of each frame and b) an entire framebasis, 3) code to encode, if a standard deviation of all pixeldifferences in luminance channel between the key frame is less than apre-determine value, at least one frame of the remaining frames as atleast one deference frame, wherein the at least one deference frameidentifies at least one difference between the key frame and the encodedframe of the remaining frames, 4) code to apply lossy compression to thekey frame and the deference frames of the plurality of frames of the atleast one first segment, wherein the lossy compression is multiscalewavelet compression and comprising Human Visual Systems (HVS) filteringto stretch out tones in the key frame and the deference frames of theplurality of frames of the at least one first segment, and 5) code toapply, after the lossy compression, a signal to noise ratio processingto the key frame and the deference frames of the plurality of frames ofthe at least one first segment; c) a third computer that decompressesthe plurality of frames of the at least one first segment wherein thedecompression is performed by the third computer in a inverse order ofthe compressing steps (c) (1) through (c)(5).

In some embodiments, the instant invention includes a computer systemthat includes at least the following components: 1) a sending computerhaving at least one memory region for first storing computer executableprogram code and at least one first processor for executing the firstcomputer executable program code stored in the at least one first memoryregion, wherein the first computer executable program code that at leastincludes: a) code to divide a first computer file into at least onefirst segment and a first remainder of the computer file, wherein thefirst computer file having a first computer format, b) code to compressthe at least one first segment, c) code to transmit the at least onefirst compressed segment to a recipient machine, d) code to divide thefirst remainder of the computer file into at least one second segment,e) code to compress the at least one second segment, and f) code totransmit, over a network, the at least one second compressed segment toa recipient computer; and 2) a recipient computer having at least onesecond memory region for second storing computer executable program codeand at least one second processor for executing the second computerexecutable program code stored in the at least one second memory region,wherein the second computer executable program code that includes: a)code to decompress the at least one first compressed segment into atleast one first decompressed segment, b) code to transcode the at leastone first decompressed segment into at least one first converted segmenthaving a second computer format, c) code to decompress the at least onesecond compressed segment into at least one second decompressed segment,d) code to transcode the at least one second decompressed segment intoat least one second converted segment having the second computer format,and e) code to assemble the at least one first converted segment and theat least one second converted segment into a second computer file havingthe second computer format, wherein the first computer file and thesecond computer file have the same content and wherein the firstcomputer format and the second computer format are different. In someembodiments, the at least one second processor of the recipient computerexecutes the codes (c) and (d), in concurrent manner.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention will be further explained with reference to theattached drawings, wherein like structures are referred to by likenumerals throughout the several views. The drawings shown are notnecessarily to scale, with emphasis instead generally being placed uponillustrating the principles of the present invention. Further, somefeatures may be exaggerated to show details of particular components.

FIG. 1 shows an embodiment of the instant invention.

FIG. 2 shows another embodiment of the instant invention.

FIG. 3 shows a flow chart of another embodiment of the instantinvention.

FIG. 4 shows a flow chart of yet another embodiment of the instantinvention.

FIG. 5 shows a flow chart of yet another embodiment of the instantinvention.

FIG. 6 shows a flow chart of another embodiment of the instantinvention.

FIG. 7 shows a flow chart of another embodiment of the instantinvention.

FIG. 8 shows an image.

FIGS. 9-10 show outputs of an analysis performed on images that resultedfrom encoding of the image of FIG. 8 by compression protocols of MPEG2(FIGS. 9) and H.264 (FIG. 10).

FIG. 11 shows an output of an analysis performed on an image thatresulted from encoding of the image of FIG. 8 in accordance with someembodiments of the instant invention.

The figures constitute a part of this specification and includeillustrative embodiments of the present invention and illustrate variousobjects and features thereof. Further, the figures are not necessarilyto scale, some features may be exaggerated to show details of particularcomponents. In addition, any measurements, specifications and the likeshown in the figures are intended to be illustrative, and notrestrictive. Therefore, specific structural and functional detailsdisclosed herein are not to be interpreted as limiting, but merely as arepresentative basis for teaching one skilled in the art to variouslyemploy the present invention.

DETAILED DESCRIPTION

Among those benefits and improvements that have been disclosed, otherobjects and advantages of this invention will become apparent from thefollowing description taken in conjunction with the accompanyingfigures. Detailed embodiments of the present invention are disclosedherein; however, it is to be understood that the disclosed embodimentsare merely illustrative of the invention that may be embodied in variousforms. In addition, each of the examples given in connection with thevarious embodiments of the invention which are intended to beillustrative, and not restrictive.

For purposes of this description, the terms “compress” and “encode” areused interchangeably and have the same meaning.

For purposes of this description, the term “file,” “electronic file,”and “data” are used interchangeably and have the same meaning of aphysical embodiment of at least one piece of information.

For purposes of this description, the terms “decompress” and “decode”are used interchangeably and have the same meaning.

For purposes of this description, the term “convert” means anymanipulation of electronic data by a computer from a first conditioninto a second condition, where the first condition differs from thesecond condition in at least one characteristic (e.g., format, size,etc.).

For purposes of this description, the term “data” means a measurablephysical state representing at least one character.

In one example, the instant invention is related to methods and systemsfor breaking a file into primary multiple segments.

In one example, the instant invention is related to methods and systemsfor compressing those primary segments as they are being broken up.

In one example, the instant invention is related to methods and systemsthat apply a compression algorithm or a combination of compressionalgorithms to those primary segments, based on what has been determinedto be appropriate to a particular format of a file from which thoseprimary segments have originated.

In one example, the instant invention is related to methods and systemsfor sending the compressed primary segments by various means inaccordance with one or more principles of the Brevity Protocol (“BP”).

In one example of the instant invention, prior to being sent, thecompressed primary segments are further broken up into secondarysegments.

In one example of the instant invention, the primary and/or secondarysegments are compressed prior to being transmitted over an electronicnetwork to recipient(s) by various suitable methods without relying onone or more BP principles.

In one example, the instant invention is related to methods and systemsfor uncompressing the primary and/or secondary segments by received byrecipient(s) as those segments come in and then reconstruct the originalfile from those segments.

In one example, the instant invention is related to methods and systemsthat use parallel processing to ensure that the compression anddecompression is performed by sender computer system(s) and recipientcomputer system in a significantly short period of time (e.g., severalfolds less) than it would otherwise take without the instant invention.

In one example, the methods and systems of the instant invention allow auser to select a type of compression. In one example, methods andsystems of the instant invention automatically select a type ofcompression based on characteristic(s) of data (e.g., file) to be sent.

In one example, for uncompressed video files, the instant invention mayprovide a functionality to compress these files using “Warp Send”methods. In one example, according to at least some “Warp Send” methods,prior to compression, an uncompressed video file can be broken up intoblocks/segments of about 500 frames per block/segment which are thenpackaged for network delivery. In one example, according to at leastsome “Warp Send” methods, prior to compression, an uncompressed videofile can be broken up into blocks/segments of between about 5 to 1000frames per block/segment which are then packaged for network delivery.In one example, according to at least some “Warp Send” methods, anuncompressed video file can be broken up into blocks/segments of betweenabout 50 to 1000 frames per block/segment which are then packaged fornetwork delivery. In one example, according to at least some “Warp Send”methods, prior to compression, an uncompressed video file can be brokenup into blocks/segments of between about 100 to 500 frames perblock/segment which are then packaged for network delivery. In oneexample, a number of frames per block/segment can be kept constant andindependent from type and/or size of the original (initial) file ordata. In one example, the segment size (e.g., bytes, kbytes, etc.) mayvary from one video file to another based on specific characteristics,such as resolution and/or bit rate.

In one example, the “Warp Send” methods and systems of the presentinvention use at least one Warp algorithm and/or a combination of Warpalgorithms to compress/encode a file, such as video file, with reliablevisually lossless quality to compress the video file to a fraction ofits original size (e.g., less than about 50% of the original size, lessthan about 25% of the original size, less than about 10% of the originalsize, less than about 5% of the original size, less than about 3% of theoriginal size, less than about 1% of the original size.) In one example,Warp algorithms at least include a Warp compression processing of videofiles which is based at least in part on encoding video files on theframe-by-frame basis and a full-frame basis (i.e., processing entireframes by analyzing each frame's visual content as a whole—withoutsubdividing each frame into subareas). In one example, the Warpcompression of the video files can includes analyzing inter-frame visualpattern similarities and/or differences. In one example, the Warpcompression of the video files can includes analyzing intra-frame visualpattern similarities and/or differences.

In one example, in addition to using the inter-frame and/or intra-framemethods, the Warp compression algorithms/methods further use at leastone lossless compression algorithm/method, such as a modified LZ/zliblossless compression method. In one example, the lossless compressionalgorithm can exploit statistical redundancy in such a way as torepresent the sender's data more concisely without error. In oneexample, lossless compression is based at least in part on statisticalredundancy.

In one example, the “Warp Send” methods and systems of the presentinvention can use Lempel-Ziv (LZ) compression methods for losslesscompression and storage. In one example, the “Warp Send” methods andsystems of the present invention use DEFLATE compression methods whichcan be optimized based at least in part on decompression speed and/orcompression ratio. In one example, the “Warp Send” methods and systemsof the present invention can use LZR (LZ-Renau) compression methods. Inone example, the LZ compression methods can utilize a table-basedcompression model where table entries are substituted for repeatedstrings of data. In one example, the compression table can be generateddynamically from earlier data of the file that is being compressed,another file/data that has been already compressed, and/or bepre-determined without prior knowledge about specific data to becompressed but determined based at least in part on data's format, size,resolution, etc. (e.g., the compression table is pre-determined byknowing that it is a video file in MOV format, 1 GB size, HD resolution,and shot in color, and the compression table is not based on whether itis a movie about lions in African Safari or a movie “Taxi Driver” withRobert De Niro).

In one example, the compression table itself can be Huffman encoded(e.g. SHRI, LZX). In one example, LZ-based coding scheme can be LZX.

In one example, the “Warp Send” methods and systems of the presentinvention can use probabilistic models, in which predictions are coupledto an algorithm (e.g., Arithmetic coding). In one example, theArithmetic coding (http://en.wikipedia.org/wiki/Arithmetic_coding) canbe preferred for files/data whose patterns can be predicted due to theirstrong context-dependency.

The examples of lossless data compression methods that can be used insome embodiments of the instant invention include, but not limited to,at least one of the following methods:

-   Data deduplication-   run-length encoding-   dictionary coders-   LZ77 & LZ78-   LZW-   Burrows-Wheeler transform-   prediction by partial matching (also known as PPM)-   context mixing-   Dynamic Markov Compression (DMC)-   entropy encoding-   Huffman coding (simple entropy coding; commonly used as the final    stage of compression)-   Adaptive Huffman coding-   Shannon-Fano coding-   arithmetic coding (more advanced)-   range encoding (same as arithmetic coding, but looked at in a    slightly different way)-   Golomb coding (simple entropy coding for infinite input data with a    geometric distribution)-   universal codes (entropy coding for infinite input data with an    arbitrary distribution)-   Elias gamma coding-   Fibonacci coding-   Slepian-Wolf coding(SWC)(lossless Distributed source coding(DSC))-   [edit] Audio-   Waveform audio format—WAV-   Free Lossless Audio Codec—FLAC-   Apple Lossless—ALAC (Apple Lossless Audio Codec)-   apt-X Lossless-   ATRAC Advanced Lossless-   Audio Lossless Coding—also known as MPEG-4 ALS-   MPEG-4 SLS—also known as HD-AAC-   Direct Stream Transfer—DST-   Dolby TrueHD-   DTS-HD Master Audio-   Meridian Lossless Packing—MLP-   Monkey's Audio—Monkey's Audio APE-   OptimFROG-   RealPlayer—RealAudio Lossless-   Shorten—SHN-   TTA—True Audio Lossless-   WavPack—WavPack lossless-   WMA Lossless—Windows Media Lossless-   [edit] Graphics-   JBIG2-   JPEG-LS-   JPEG 2000-   JPEG XR—formerly WMPhoto and HD Photo-   PGF—Progressive Graphics File-   PNG—Portable Network Graphics-   TIFF—Tagged Image File Format-   Gifsicle (GPL) Optimize gif files-   Jpegoptim (GPL) Optimize jpeg files-   [edit] 3D Graphics-   OpenCTM—Lossless compression of 3D triangle meshes-   [edit] Video-   Animation codec-   CorePNG-   Dirac—Has a lossless mode.-   FFV1-   JPEG 2000—(e.g. J2K)-   Huffyuv-   Lagarith-   MSU Lossless Video Codec-   SheerVideo.

In one example, the “Warp Send” compression methods can additionally uselossy data compression or perceptual coding, if some loss of fidelity(fidelity or compression fidelity is a measure of quality/contextdifference(s) between of an initial/original file and a file decodedafter undergoing compression in accordance with the instant invention)is acceptable. In one example, the level of acceptable fidelity is basedon research on how people perceive the data in question. For example,the human eye is more sensitive to subtle variations in luminance thanit is to variations in color. In one example, the lossy data compressionmay work by “rounding off” some of less-important information. In oneexample, the lossy data compression provides a way to obtain the bestfidelity for a given amount of compression. In some cases, transparent(unnoticeable) compression is desired; in other cases, fidelity issacrificed to reduce the amount of data as much as possible. In oneexample, the instant invention provides a user with a functionality tochoose lossy schemes of compression over lossless schemes of compressionwhen the exact fidelity during the compression/decompression process maynot be needed. In one example, the instant invention provides afunctionality to determine if using lossy schemes may result in highercompression and, consequently, in faster transmission of the originalfile over the inventive methods that use lossless compression.

In one example, the fidelity is determined based on percentage pointdeference(s) between initial characteristics prior to compression andresulting characteristics after decoding the compressed data (e.g., 2%loss of red hue, 5% loss of top frequency (Hz), 1% loss in sharpness,etc.)

In one example, the instant invention can use lossless compressionalgorithms/methods for files/data representing executable programs, textdocuments, source code, and other similar files/data that require tomaintain the full or almost full content integrity. In one example, theinvention can use lossless compression schemes for image file formats,like PNG or GIF, and use either lossless or lossy methods for otherfiles like TIFF and MNG. In one example, the invention can use thelossless compression for audio files.

In one example, the “Warp Send” methods and systems of the presentinvention can be fully pipelined, and the combined bit (data) streamwill transfer as its being encoded. In one example, the “Warp Send”compression algorithm(s) is (are) capped to encode a frame in less than0.001 seconds. In one example, the “Warp Send” compression algorithm(s)is (are) capped to encode a frame in less than 0.010 seconds. In oneexample, the “Warp Send” compression algorithm(s) is (are) capped toencode a frame in less than 0.005 seconds. In one example, the “WarpSend” compression algorithm(s) is (are) capped to encode a frame in lessthan 0.0005 seconds. In one example, with respect, for example, to avideo file, the “Warp Send” compression algorithm can examine a qualityof an image during the encoding period to determine if leftover bits canor should be utilized but, only if extra bits are available. In oneexample, the “Warp Send” compression methods and systems of the presentinvention can first attempt to find contiguous segment computer graphicoverlays from video by detecting contiguous static regions betweenframes.

In one example, contiguous static regions” are actual content (e.g.,depiction of sea water in a movie) that does not substantially changeover a plurality of frames. In one example, contiguous static regions”are data (e.g., depiction of sea water in a movie) that experiences avariation of less than 5% percent over a plurality of frames. In oneexample, contiguous static regions” are data (e.g., depiction of seawater in a movie) that experiences a variation of less than 1% percentover a plurality of frames. In one example, contiguous static regions”are data (e.g., depiction of sea water in a movie) that experiences avariation of less than 3% percent over a plurality of frames. In oneexample, contiguous static regions” are data (e.g., depiction of seawater in a movie) that experiences a variation of less than 10% percentover a plurality of frames.

In one example, after the contiguous static regions are determined, the“Warp Send” compression methods and systems of the present inventionthen apply a lossless compression method to these regions. In oneexample, using the Warp Send compression methods and systems of thepresent invention allows to eliminate the possibility of artifacts in avisually sensitive area (e.g. static synthetic text and graphics). Inone example, after the contiguous static regions have been detected andprocessed, the remainder of a frame can be sub-sampled across all planesto, for example, 8:4:3 of Y:U:V or R:G:B sampling ratios (a samplingratio refers to a value or set of values at a point in time and/orspace; a sampler is a subsystem or operation that extracts samples froma continuous signal; a theoretical ideal sampler produces samplesequivalent to the instantaneous value of the continuous signal at thedesired points) by creating a target bit rate (a desired amount of data(e.g., bits) transferred per unit of time, usually measured per second(can be measured during any time period, and will use non-integer JPEG2000(j2k) compression near 7:1 (visually lossless). In one example, J2Kwill not be used for regions already compressed by the lossless method.In one example, frames can be grouped together in a block/segment sizeof 500 frames in a group for sending.

In one example, the “Warp Send” compression methods and systems of thepresent invention can employ floating-point calculations to acceleratethe Warp compression/decompression processing. In one example, the “WarpSend” compression methods and systems of the present invention canemploy matrix and vector operations to accelerate the Warpcompression/decompression processing. In one example, to increase thecompression fidelity, the “Warp Send” compression methods and systems ofthe present invention can employ programmable shaders which canmanipulate vertices and textures, oversampling and interpolationtechniques to reduce aliasing, and high-precision color spaces. In oneexample, to increase the compression fidelity in compression of videodata, the “Warp Send” compression methods and systems of the presentinvention can employ, for example, at least one of the followingtechniques:

-   Motion compensation (mocomp)-   Inverse discrete cosine transform (iDCT)-   Inverse telecine 3:2 and 2:2 pull-down correction-   Inverse modified discrete cosine transform (iMDCT)-   In-loop deblocking filter-   Intra-frame prediction-   Inverse quantization (IQ)-   Variable-Length Decoding (VLD), more commonly known as slice-level    acceleration-   Spatial-temporal deinterlacing and automatic interlace/progressive    source detection-   Bitstream processing (CAVLC (Context-adaptive variable-length    coding)/CABAC (context-based adaptive binary arithmetic coding)).

In one example, with respect to processing video files/data, thefile/data formats that are supported by the “Warp Send” methods andsystems of the present invention include, but not limited to, at leastone of the following video formats: Quicktime, Mpeg 2, Mpeg 4, and Avi.

In one example, the “Warp Send” methods and systems of the presentinvention take the difference between frames and if the standarddeviation of the difference is within tolerance (<5), Warp compressionalgorithms encode the delta; otherwise Warp compression algorithmsencode the original frame. In one example, if the standard deviation isgreater than a threshold (40), Warp compression algorithms subsample theframe by a factor of 1.5. In one example, Warp compression algorithmsencode the delta or original frame to the specified bitrate. In oneexample, Warp compression algorithms encode delta frames to a lowerbitrate (can be several folds less) than original frames. In oneexample, Warp compression algorithms encode applying wavelet +mq coing,similar to jpeg2000.

In one example, applying the “Warp Send” compression methods and systemsof the present invention can reduce an uncompressed video file by about95% and more. In one example, applying the “Warp Send” compressionmethods and systems of the present invention can reduce an uncompressedvideo file by about 75% and more. In one example, applying the “WarpSend” compression methods and systems of the present invention canreduce an uncompressed video file by about 80% and more. In one example,applying the “Warp Send” compression methods and systems of the presentinvention can reduce an uncompressed video file by from about 5% toabout 99%. In one example, applying the “Warp Send” compression methodsand systems of the present invention can reduce an uncompressed videofile by from about 25% to about 85%. In one example, applying the “WarpSend” compression methods and systems of the present invention canreduce an uncompressed video file by from about 50% to about 99%.

In one example, for uncompressed video files, compressed video, and/ornon-video files, the instant invention may provide a functionality tofurther compress these files using “Archive Send” compression methodsand systems. In one example, according to at least some “Archive Send”methods of the instant invention, prior to the “Archive Send”compression, an original file (e.g., uncompressed video file/data,compressed (by a method of the instant invention or another method)video file/data, non-video file/data) can be broken up intoblocks/segments of certain size (e.g., 4 KB (kilobyte)) and packaged fornetwork delivery. In one example, according to at least some “ArchiveSend” methods of the instant invention, prior to the “Archive Send”compression, the original file can be broken up into between about 1 KBto 10 KB blocks/segments and packaged for network delivery. In oneexample, according to at least some “Archive Send” methods of theinstant invention, prior to the “Archive Send” compression, the originalfile can be broken up into between about 2 KB to 7 KB blocks/segmentsand packaged for network delivery. In one example, according to at leastsome “Archive Send” methods of the instant invention, prior to the“Archive Send” compression, the original file can be broken up intobetween about 3KB to 6KB blocks/segments and packaged for networkdelivery. In one example, a particular size of each block/segment can beconstant and independent from a type and/or size of the original file.In one example, the block/segment size (bytes) can vary from one file toanother based at least in part on file specific characteristics (e.g.,video files: resolution, bit (data) rate, etc.)

In one example, at least some “Archive Send” compression methods of theinstant invention are used to encode/compress any type of file/data(e.g., video, audio, xls, etc) with lossless compression. In oneexample, using at least some “Archive Send” methods of the instantinvention allows for at least 2% overall size reduction of a file of anyformat and/or size. In one example, in accordance with the instantinvention, a greater percent reduction in the file size by using“Archive Send” compression methods can be achieved for uncompressedfiles versa partially or fully compressed files. In one example,previously compressed files can show the file size unaltered or evenslightly increased if heavy compression was previously applied.

In one example, if a file is an uncompressed video format file, then atleast some “Archive Send” compression methods of the instant inventioncan first apply at least one Lagarith algorithm (a lossless video codecintended for editing and archiving) at the start of the compressionprocessing. In one example, the Lagarith algorithm first uses a medianfilter, then, the resulting data stream is checked against a run lengthencoding algorithm to see if any compression gains can be utilized. Inone example, the instant invention employs the median prediction tocompress contiguous static scenes identified over a group of frames. Inone example, the instant invention detects null frames (mathematicallyidentical frames), discarding at least some of them. In one example, theresulting data stream is additionally compressed using at least oneArithmetic compression. In one example, all operations of the medianfilter are performed in parallel, and there can be additionalparallelism changes around every frame.

In one example, the Lagarith compression processing is able to operatein several colorspaces (e.g, RGB24, RGB32, RGBA, YUY2, and YV12.) In oneexample, for DVD video files , the compression can be typically about10-30% better than Huffyuv. In one example, for high static scenes orhighly compressible scenes, the Lagarith compression processing canoutperform Huffyuv. In one example, according to some “Archive Send”methods of present invention, in applying the Lagarith compressions tovideo files, the pixel values are first predicted using the medianprediction. In one example, the data (byte) stream may be furthersubjected to a modified Run Length Encoding if the instant inventiondetermines that using the modified Run Length Encoding can result inbetter compression (e.g., higher compression fidelity and/or larger filesize reduction). In one example, the resulting byte stream from that canbe further compressed using the Arithmetic compression, which can usefractional bits per symbol. In one example, applying the Lagarithcompression can allow the compressed size to be very close to theentropy of the data and avoid expanding high static video. In oneexample, the Lagarith compression has support for null frames: if theprevious frame is mathematically identical to the current, the currentframe is discarded and the decoder simply uses the previous frame again.

In one example, the instant invention uses a LZ/ zlib library to convertthe file into 4 KB (Kilobytes) blocks/segments (Modified LZ compressionmethodology). In one example, the size of the block depends at least ona rate for parallelism processing. In one example, the size of the blockvaries as previously detailed. In one example, zlib is a softwarelibrary used for data compression. In one example, zlib incorporatesDeflate, a lossless data compression algorithm, that uses a combinationof the LZ78 algorithm (forward scanning the input buffer, matching itagainst a dictionary it maintains and replacing portions of the datawith references to matching data) and Huffman coding (a variable-lengthcode table for encoding a source symbol (such as a character in a file)where the variable-length code table has been derived in a particularway based on the estimated probability of occurrence for each possiblevalue of the source symbol).

In one example, in least some of the “Archive” methods, the compressionis achieved through two steps process. In one example, the first step isthe matching and replacing duplicate textual (e.g., text, number(s))strings with pointers (pointer: an address embedded within the data thatspecifies the location of data in another record or file; or a variablethat holds the address of another variable or the address of thebeginning of an array of variables, when a pointer to an array is used,it is made to point to any element in the array by incrementing ordecrementing its contents (incrementing or decrementing the address)).In one example, the second step is replacing symbols (non-textual (e.g.,not text and/or number(s)) elements) with new, weighted symbols based onfrequency of use. In one example, the LZ/zlib algorithms is based off adictionary coder that is created based on the data being compressed(dictionary coder is a class of lossless data compression algorithmswhich operate by searching for matches between the text to be compressedand a set of strings contained in a data structure (called the“dictionary”) maintained by the encoder; when the encoder finds such amatch, it substitutes a reference to the string's position in the datastructure).

In one example, the “Archive Send” methods and systems of the presentinvention utilizes Custom Generalized Lossless Compression method(“Crush algorithm”) to compress segments for transmission. In oneexample, the Crush algorithm can be based on Lagarith algorithm. In oneexample, the Crush algorithm can be based on one or more losslesscompressions algorithms that are previously identified.

In one example, the “Archive Send” methods and systems of the presentinvention support all file formats that one skilled person in the artwould know. In one example, applying the “Archive Send” methods andsystems of the present invention can reduce the size of uncompressedfiles on an average by 70%-85%. In one example, applying the “ArchiveSend” methods and systems of the present invention can reduce size ofuncompressed files on an average by 10%-85%. In one example, applyingthe “Archive Send” methods and systems of the present invention canreduce the size of uncompressed files on an average by 25%-50%. In oneexample, applying the “Archive Send” methods and systems of the presentinvention can reduce the size of uncompressed files on an average by50%-90%. In one example, applying the “Archive Send” methods and systemsof the present invention can reduce the size of uncompressed files on anaverage by 30% -85%.

In one example, when the instant invention receives/obtains a file, themethods and systems of the instant invention determine thereceived/imported file type. In one example, if the file is anuncompressed video file, the instant invention provides a functionalityto choose between the “Warp Send” and “Archive Send” compressionmethodologies. In one example, if the received file/data is an alreadycompressed video or a non-video file, then the inventive system mayautomatically process the file in accordance with the “Archive Send”methodology. In one example, if a user attempts to send the file usingthe “Archive Send” methodology, the instant invention may generate awarning, informing that the “Archive Send” can be used only be used foruncompressed video files.

After the compression step and during the network delivery step, themethods and systems of the instant invention can further segment thecompressed primary blocks/segments into network delivery blocks (“NDBs)which are secondary blocks/segments of a smaller size transferred over acomputer network. In one example, if there is only a single recipient,the instant invention does not break blocks/segments into NDBs. In oneexample, NDBs can have a size of 100 Kb (Kilobits). In one example, NDBscan have a size that ranges from about 100 Kb to 1000 Kb. In oneexample, NDBs can have a size that ranges from about 250 Kb to 750 Kb.In one example, NDBs can have a size that ranges from about 400 Kb to600 Kb. In one example, NDBs can have a size that ranges from about 50Kb to 1000 Kb. In one example, the size of NDBs is independent from anumber of potential recipients and/or a bandwidth for the transmission.

In one example, the methods and systems of the instant invention canallow for a continuous process flow. In one example, when a firstprimary block/segment is created, by either, for example, “Warp Send” or“Archive Send” methodologies, the instant invention, at thesubstantially real-time (e.g., several milliseconds), packages thecompressed primary block/segment for the network delivery by furthersegmenting it into NDBs, and sending each NDBs to each targetdestination. In one example, when a first NDS arrive at a firstdestination, the instant invention decodes NDBs, substantially real-time(e.g., several milliseconds), into a portion of the primaryblock/segment, and, as other NDBs arrive that correspond to otherportions of the same primary block/segment and/or to otherblocks/segments, the instant invention assembles and decodes therecreated primary blocks/segments into the received transmittedfile/data. In one example, the instant invention awaits the arrival ofall NDBs for each particular primary segments and then assembles theminto the primary segment that is then decoded.

In one example, it can take methods and systems of the instant inventionon average about 10-15 milliseconds (can not include network traveltime) to create, compress, transmit, and decompress each primary segmentafter the initial transfer begins. In one example, it can take methodsand systems of the instant invention on average about 1-15 milliseconds(can not include network travel time) to create, compress, transmit, anddecompress each primary segment after the initial transfer begins. Inone example, it can take methods and systems of the instant invention onaverage about 1-50 milliseconds (can not include network travel time) tocreate, compress, transmit, and decompress each primary segment afterthe initial transfer begins. In one example, it can take methods andsystems of the instant invention on average about 0.1-50 milliseconds(can not include network travel time) to create, compress, transmit, anddecompress each primary segment after the initial transfer begins. Inone example, the time that the methods and systems of the instantinvention take to create, compress, transmit, and decompress eachprimary segment after the initial transfer begins depends at least inpart on characteristic(s) of processing power.

In one example, the methods and systems of the instant invention allow,at a recipient computer system, to contemporaneously decode (e.g.,uncompress) the received blocks/segments and reassemble the decodedblocks/segments into the transmitted file (i.e., the receiving, decodingand reassembling processes are performed in parallel—as blocks/segmentsare received, they are decoded, and assembled together without waitinguntil all blocks/segments of the original file arrive at the recipientcomputer system).

With respect to files that have been compressed using “Warp Send”methods. In one example, at the recipient, the instant invention allowsto decode the combined bit(data) stream of blocks/segments) as it isbeing received. In one example, with respect to video files, the instantinvention allows, at a recipient computer system, to decode the receivedblocks/segments that have been compressed using both lossless and j2kalgorithms and combine them into each frame. In one example, the instantinvention applies interpolation to expand j2k compression during thedecoding process and cubic b-spline interpolation to all planes torestore blocks/segments to their original size.

With respect to files that have been compressed using “Archive Send”methods. In one example, at the recipient, the instant invention usesthe same dictionary coder that has been utilized for compression(encode) step to uncompress (decode) the 4 KB blocks on the fly. In oneexample, at the recipient, the instant invention performs the decodingstep by first reading in an index from the dictionary, finding the indexin the dictionary, and outputting the substring associated with theindex. In one example, the index value points to a string in thedictionary. In one example, the first character of this substring isconcatenated to the current working string. In one example, this newconcatenation is added to the dictionary (re-simulating how thesubstrings were added during compression). In one example, the decodedstring then becomes the current working string (the current index, i.e.the substring, is remembered), and the process repeats.

In one example, at a recipient, the methods and systems of the instantinvention allow to reassemble the original file by decoding eachindividual segment, substantially real-time (e.g., severalmilliseconds), upon arrival, while being placed into the proper order ofthe original file, even if the particular segment has arrived out of thecorrect order.

In one example, the methods and systems of the instant invention allow,at a recipient computer system, to automatically convert the decodedfile into a format which is different from the original format of thefiled received by the systems of the instant invention. In one example,when NDBs (or blocks/segments) of the file arrive at a recipient'slocation, the instant invention provides an option to select that thosesegments be uncompressed to either: (1) the original format of thetransmitted file, or (2) to be uncompressed and transcoded into adifferent format. In one example, if the recipient chooses to have thefile transcoded into a different format (e.g. different video format),the arrived data will first be decoded into an intermediary 10-bit RAWformat and then be transcoded into the desired format, such as .mov,.mpeg, .avi, etc.

In one example, the methods and systems of the instant invention use atleast some principles of BP methodology which are directed todistributions of files (or segments, NDBs, other pieces of data) throughcommunications means (e.g., the Internet) to multiple recipients bysharing segment(s) of the transmitting file that one recipient hasalready received and another recipient needs (i.e., avoiding necessityof sending directly each block/segment or NDB and leveraging eachrecipient's uploading bandwidth to increase the speed of transmission ofthe file to a plurality of recipients.)

In one example, the methods and systems of the instant invention caninclude at least three entities: 1) at least one sender unit that issending information; 2) at least one recipient unit that is receivinginformation, and 3) at least one core server that functions as acentralized host/hub. For purposes of describing the present invention,the term “unit” includes a separate physical computer system and/orsoftware residing in a electronic machine. In one example, allnetworking communications rely on the TCP protocol. In one example, allnetworking communications rely on the UDP protocol. In one example, thecentral server uses SQL Server Light as its database.

In one example, all participating the sender and recipient unitsconstantly communicate with the core server to provide/update theiraddressing/connection information. In one example, to initiate atransfer, the methods and systems of the instant invention would gathera list of available recipient units from the core server, and thenselect the destination(s). In one example, after the instant inventionhas selected the destination(s), peer to peer connection(s) isestablished between participating entities. In one example, if it is aone-to-one transfer, a direct connection is established between twounits. In one example, if it is a transfer with multiple recipients, thenetwork topology is adjusted accordingly.

In one example, at least some the systems of present invention recordthe Up and Down bandwidths of each participating unit during first timethat the particular unit is added to the inventive system, by measuringa particular bandwidth in real time. In one example, the recordedinitial bandwidth numbers are only used as initial values (first guess).In one example, during file transfer, at least some of systems of thepresent invention continuously monitor the transfer conditions of (1)each individual unit and/or communication(s) among units. In oneexample, the present invention provides a functionality to,automatically and/or manually, adjust at least one characteristic of thetransmission to ensure that the first priority is given to recipientshaving the fastest bandwidth.

In one example, all units agree on a universal job ID, and the job infois transmitted to all units. In one example, the Job info can include:Identities of Sender/Recipient, priority ranking based on originalbandwidth (first guess).

In one example, each recipient finds its place in the chain base on itspriority ranking, and requests the job from its sender starting at byteposition zero.

In one example, each receiving unit receives this request to startsending a job waits until a first segment or NDB shows up, and thenstarts transmitting the arrived segment/NDB to another recipient.

In one example, each participating unit at this point is monitoring thein/out bandwidth.

In one example, a system of the instant invention determines if thepriority ranking needs to be adjusted to maintain/maximize bandwidthefficiency when there is a change in at least one characteristic oftransfer (e.g. a receiving unit that previously had high UP bandwidthbecame slower). In one example, prior to making the adjustment, thesystem of the instant invention waits until a sending unit completes thecurrent block transfer and requests disconnect, and then sends a similarmessage to its receiving unit. In one example, (all) affected receivingunit(s) (recipients) then establish(s) new connection(s) and request(s)a job by sending for the job ID starting a determined byte position andtransmission resumes.

In one example, if the sender unit fails to establish transmission to aparticular receiving unit or if receiving units break off thecommunication link between them, the particular receiving unit can tryfor a certain time to reconnect to the sender and/or recipient unit and,if not successful, then puts itself at the bottom of the priority chainand requests segments from the recipient unit which is next to the last.In one example, requesting the next segment from the next to last uniton the priority chain, forces the next-to-last unit to obtain thesegment(s) from a unit which is 2-up on the priority chain.

In one example, when a failed unit comes back online later, it can,substantially realtime (e.g., several milliseconds) re-request the filefrom its sender starting from the break-off byte (or NDB, orblock/segment) position. In one example, the present invention uses atleast one core server system (based on at least number of recipients,participants of the system, redundancy demand, etc.) to assist in thenetwork transfer by providing high symmetrical bandwidth and the resumefunctionality for failed connections.

In some examples, even without any failed connection(s), the core servercan function as a receiving unit with high symmetrical bandwidth, andcan delete the file that it has received after the successful completionof the transfer to all receiving units. In one example, if a receivingunit disconnects in the middle of the transmission and then returnswhile a transfer is still active, the re-connected unit will reenter thepriority chain at the lowest position. In one example, if the receivingunit does not return online until the transfer is completed for allother participants, that receiving unit can the query the core server toresume the transfer from the point of the last received byte (orsegment, or NDB) and complete the transfer.

In one example, if a particular receiving unit has a dedicated networkconnection with a symmetrical bandwidth that is higher than a bandwidthof the core server, then the topology in accordance with one embodimentof the instant invention can be adjusted by the core server to allow,the particular receiving unit to be the highest in the priority chain.

In one example, the instant invention provide a functionality tocontinuously update the priority change and to observe the transmissionprogress. In one example, the transmission status/progress(e.g. a speedof transfer) only provides lowest bandwidth info between two units. Inone example, when the priority chain's order is altered, thetransmission “to/from” status is updated based on the new lowestbandwidth between two particular units to give a more accurate pictureof what's happening. In one example, every time there is a change in theorder of the priority ranking, the instant invention allows a moreaccurate analysis of both send and receive bandwidth.

In one example of the instant invention, a sender computer system and/orthe core server assigns the each segment/bock (or NDBs) to a particularreceiving unit.

In one example of the instant invention, the sender computer systemand/or the core server confirms that each recipient receives all piecesto reconstruct the original file. In one example of the instantinvention, the sender computer system and/or the core server confirmsthat each recipient receives all pieces to reconstruct the originalfile, by maintaining a duplicate copy of transmitting segments/NDBs atthe core server.

In one example, the instant invention provides a secure transmission bycommunicating over SSL and by using 64 bit encryption. In one example,the instant invention provides a secure transmission by assigning aunique 64 bit unit ID and 64 bit user ID. In one example, in order tobreach the security, an intruder would need to know the format of forboth IDs.

In one example, the methods and systems of the instant invention allowto transmit files whose size ranges from about 1 Megabytes to about 2Terabytes. In one example, the methods and systems of the instantinvention allow to transmit files whose size ranges from about 100Megabytes to about 2 Terabytes. In one example, the methods and systemsof the instant invention allow to transmit files whose size ranges fromabout 50 Megabytes to about 2 Terabytes. In one example, the methods andsystems of the instant invention allow to transmit files whose sizeranges from about 200 Megabytes to about 2 Terabytes. In one example,the methods and systems of the instant invention allow to transmit fileswhose size ranges from about 500 Megabytes to about 2 Terabytes. In oneexample, the methods and systems of the instant invention allow totransmit files whose size ranges from about 1 Gigabytes to about 2Terabytes. In one example, the methods and systems of the instantinvention allow to transmit files whose size ranges from about 5Gigabytes to about 2 Terabytes.

Illustrative Operating Environment and Applications of Examples ofMethods and Systems of the Instant Invention

FIG. 1 illustrates one embodiment of an environment in which the presentinvention can operate. However, not all of these components can berequired to practice the invention, and variations in the arrangementand type of the components can be made without departing from the spiritor scope of the invention. In some embodiment, the invention systemhosts a large number of members and concurrent transactions. In otherembodiments, the invention system computer is based on a scalablecomputer and network architecture that incorporates varies strategiesfor assessing the data, caching, searching, and database connectionpooling. An example of the scalable architecture is an architecture thatis capable of operating multiple servers.

In embodiments, members of the inventive computer system 102-104 (e.g.sending and/or receiving units) include virtually any computing devicecapable of receiving and sending a message over a network, such asnetwork 105, to and from another computing device, such as servers 106and 107, each other, and the like. In embodiments, the set of suchdevices includes devices that typically connect using a wiredcommunications medium such as personal computers, multiprocessorsystems, microprocessor-based or programmable consumer electronics,network PCs, special-purpose electronic devices, and the like. Inembodiments, the set of such devices also includes devices thattypically connect using a wireless communications medium such as cellphones, smart phones, pagers, walkie talkies, radio frequency (RF)devices, infrared (IR) devices, CBs, integrated devices combining one ormore of the preceding devices, or virtually any mobile device, and thelike. Similarly, in embodiments, client devices 102-104 are any devicethat is capable of connecting using a wired or wireless communicationmedium such as a PDA, POCKET PC, wearable computer, and any other devicethat is equipped to communicate over a wired and/or wirelesscommunication medium.

In embodiments, each member device within member devices 102-104 caninclude a browser application that is configured to receive and to sendweb pages, and the like. In embodiments, the browser application can beconfigured to receive and display graphics, text, multimedia, and thelike, employing virtually any web based language, including, but notlimited to Standard Generalized Markup Language (SMGL), such asHyperText Markup Language (HTML), a wireless application protocol (WAP),a Handheld Device Markup Language (HDML), such as Wireless MarkupLanguage (WML), WMLScript, JavaScript, and the like. In embodiments, theinvention is programmed in either Java, C++, or .Net.

In embodiments, member devices 102-104 can be further configured toreceive a message from the another computing device employing anothermechanism, including, but not limited to email, Short Message Service(SMS), Multimedia Message Service (MMS), instant messaging (IM),internet relay chat (IRC), mIRC, Jabber, and the like.

In embodiments, network 105 can be configured to couple one computingdevice to another computing device to enable them to communicate. Inembodiments, network 105 can be enabled to employ any form of computerreadable media for communicating information from one electronic deviceto another. Also, in embodiments, network 105 can include a wirelessinterface, and/or a wired interface, such as the Internet, in additionto local area networks (LANs), wide area networks (WANs), directconnections, such as through a universal serial bus (USB) port, otherforms of computer-readable media, or any combination thereof. Inembodiments, on an interconnected set of LANs, including those based ondiffering architectures and protocols, a router can act as a linkbetween LANs, enabling messages to be sent from one to another.

Also, in some embodiments, communication links within LANs typicallyinclude twisted wire pair or coaxial cable, while communication linksbetween networks can utilize analog telephone lines, full or fractionaldedicated digital lines including T1, T2, T3, and T4, IntegratedServices Digital Networks (ISDNs), Digital Subscriber Lines (DSLs),wireless links including satellite links, or other communications linksknown to those skilled in the art. Furthermore, in some embodiments,remote computers and other related electronic devices could be remotelyconnected to either LANs or WANs via a modem and temporary telephonelink. In essence, in some embodiments, network 105 includes anycommunication method by which information can travel among and betweendevices 102-104 and servers 106 and 107.

FIG. 2 shows another exemplary embodiment of the computer and networkarchitecture that supports the invention system. The member devices 202a, 202 b thru 202 n shown (e.g. sending and receiving units) eachcomprises a computer-readable medium, such as a random access memory(RAM) 208 coupled to a processor 210 or FLASH memory. The processor 210can execute computer-executable program instructions stored in memory208. Such processors comprise a microprocessor, an ASIC, and statemachines. Such processors comprise, or can be in communication with,media, for example computer-readable media, which stores instructionsthat, when executed by the processor, cause the processor to perform thesteps described herein.

Embodiments of computer-readable media can include, but are not limitedto, an electronic, optical, magnetic, or other storage or transmissiondevice capable of providing a processor, such as the processor 210 ofclient 202 a, with computer-readable instructions. Other examples ofsuitable media can include, but are not limited to, a floppy disk,CD-ROM, DVD, magnetic disk, memory chip, ROM, RAM, an ASIC, a configuredprocessor, all optical media, all magnetic tape or other magnetic media,or any other medium from which a computer processor can readinstructions. Also, various other forms of computer-readable media cantransmit or carry instructions to a computer, including a router,private or public network, or other transmission device or channel, bothwired and wireless. The instructions can comprise code from anycomputer-programming language, including, for example, C, C++, C#,Visual Basic, Java, Python, Perl, and JavaScript.

Member devices 202 a-n can also comprise a number of external orinternal devices such as a mouse, a CD-ROM, DVD, a keyboard, a display,or other input or output devices. Examples of client devices 202 a-n canbe personal computers, digital assistants, personal digital assistants,cellular phones, mobile phones, smart phones, pagers, digital tablets,laptop computers, Internet appliances, and other processor-baseddevices. In general, a client device 202 a are be any type ofprocessor-based platform that is connected to a network 206 and thatinteracts with one or more application programs. Client devices 202 a-ncan operate on any operating system capable of supporting a browser orbrowser-enabled application, such as Microsoft™, Windows™, or Linux. Theclient devices 202 a-n shown can include, for example, personalcomputers executing a browser application program such as MicrosoftCorporation's Internet Explorer™, Apple Computer, Inc.'s Safari™,Mozilla Firefox, and Opera. As shown in FIG. 2, server devices 204 and213 can be also coupled to the network 206.

Of note, the embodiments described herein can, of course, be implementedusing any appropriate computer system hardware and/or computer systemsoftware. In this regard, those of ordinary skill in the art are wellversed in the type of computer hardware that can be used (e.g., amainframe, a mini-computer, a personal computer (“PC”), a network (e.g.,an intranet and/or the internet)), the type of computer programmingtechniques that can be used (e.g., object oriented programming), and thetype of computer programming languages that can be used (e.g., C++,Basic, AJAX, Javascript). The aforementioned examples are, of course,illustrative and not restrictive.

In one example, the “Warp Send” compression methods and systems of thepresent invention can employ parallel processing functionalities (e.g.,multithread processing based on clock frequency (e.g., 250 MHz to 4GHz), memory access rate (e.g., 10 GB/s to over 300 GB/s of bandwidth),programmable shaders, a number of pipelines, etc.) of one or more GPU(Graphics Processing Units) for the Warp compression/decompressionprocessing. In one example, with respect to at least video data, the“Warp Send” compression methods and systems of the present invention canemploy APIs for GPU-processing, such as DxVA, VDPAU, VAAPI, XvMC, andXvBA. In one example, the “Warp Send” compression methods and systems ofthe present invention can employ integrated graphics solutions, sharedgraphics solutions, or IGP (Integrated Graphics Processors“) that canutilize at least a portion of a computer's system RAM or have dedicatedmemory. In one example, the “Warp Send” compression methods and systemsof the present invention can employ an API extension to the Cprogramming language CUDA (“Compute Unified Device Architecture”) whichallows specified functions from a normal C program to run on the GPU.

In one example, the “Warp Send” compression methods and systems of thepresent invention can employ parallel processing functionalities of oneor more CPUs (Central Processing Unit) for the Warpcompression/decompression processing. In one example, the “Warp Send”compression methods and systems of the present invention can employ acombination of parallel processing functionalities of one or more GPUsand one or more CPUs for the Warp compression/decompression processing.

Referring to FIG. 3. FIG. 3 shows a flow chart of an exemplaryembodiment of an aspect of a particular sending computer unit that isemployed to send an initial uncompress file in accordance with at leastsome principles of the instant invention. In one example, in step 301,the sending computer unit receives a file that needs to be transmitted.In one example, the file could have been previously loaded into memoryof the sending computer unit or being obtained from a removable storagecontainer (e.g. CD, DVD, etc). In step 2, the sending computer unitchecks if the file is an image-type file that can be efficiently sent byusing Warp Send methods of the instant invention (i.e., “Warpable”file). If the sending computer unit cognizes that can be sent by using aWarp Send, then in step 303, it compresses by the file using the “Warpsend” methodology and sends the compressed blocks/segments to atransmission module (305).

If, in step 302, the sending computer unit detects that the file is not“Warpable” file, in step 304, the sending unit compresses the file usingby the “Archive Send” algorithm by breaking the file intoblocks/segments, as disclosed above for the “Archive Send” methods(e.g., LZMA, Crush, Lz/lb, Lagarith, etc.) to compress segments fortheir transmission. The sending computer unit then forwards thecompressed blocks/segments, and then forwards the compressed to thetransmission module (305). In one example, the “Archive Send”compression can be based on the Lagarith algorithm. In one example, the“Archive Send” compression can be based on one or more losslesscompressions algorithms that are described above.

Referring to FIG. 4. FIG. 4 shows a flow chart of an exemplaryembodiment of a transmission module 400 of a particular sending computerunit that is used to transmit the compressed segments in accordance withat least some principles of the instant invention. As the compressedblocks/segments are received by the transmission module, step 401, thetransmission module 400 activates a tracker module in step 402. Thetracker module determines based at least in part on upload/downloadspeeds of recipient computer units, in steps 403, if a core servershould be added to increase speed, and confirm a priority chain amongall units to be participating in the transmission, in step 404. Afterthe priority chain is determined and confirmed, the transmission module400 establishes connection and begins the transfer, in step 405.

Referring to FIG. 5. FIG. 5 shows a flow chart of an exemplaryembodiment of a receiving module 500 of a particular receiving unitoperated in accordance with at least some principles of the instantinvention. In one embodiment, if the receiving machine does not turn onauto conversion, the file is converted to the original format.

Referring to FIG. 6. FIG. 6 shows a flow chart of an exemplaryembodiment of a retrieving module 600 of a particular receiving unitoperated in accordance with at least some principles of the instantinvention. In one example, using the retrieving module 600, a recipientcomputer unit can download the received and reconstructed file, in step601, onto any removable storage medium, in step 602. In some embodiment,the reconstructed file can be copied over an internal network (ex. LAN)to other network accessible drives (e.g., from the receiving unit to aSAN, NAS, or other suitable network accessible storage). In one example,using the retrieving module 600, a recipient computer unit can firstconvert the received and reconstructed file into a desired format instep 603 prior to downloading it, in step 602.

In one example, the sending computer unit and the receiving computerunit are two different physical devices (e.g. different computers.) Inone example, the sending computer unit and the receiving computer unitrepresent a software having these separate functionalities but residingwithin a single physical device (e.g. a single computer) or within aplurality of interconnected physical devices (e.g. a network ofcomputers.) Consequently, as disclosed therein, the term “sendingcomputer unit' refers to the function of sending a file/data, and theterm receiving (or recipient) computer unit refers to the function ofreceiving the file/data sent by the sending computer unit. Thus, oneskilled in the art would ready appreciate that these functions can beperformed by a single computer device.

Examples of Some Aspects of WARP Send Methods and Systems of the InstantInvention for Processing Image Data (e.g., Video Files, Static ImageFiles, etc.).

The following examples of some aspects of the instant invention aredescribed based on video data files whose file size range from about 1-2GB(Gigabyte) to 700-800 GB. However, it is understood that the instantinvention is not limited to processing video files to such particularsizes. In addition, regarding static image files, the following examplesof some aspects of the instant invention is premised on the notion thatthe static images are initially aggregated in a package based on, forexample, time sequence in which they were taken. For example, images arestored in the same storage location, which the instant invention wouldprocess as a virtual container of these images similar to AVI-likewrapper discussed below regarding video files.

Example 1 Some Aspects of Pre-Encoding (Pre-Compression) Processing

In one embodiment, before Warp compression algorithms are applied duringthe Warp Send methods, video files may need to be subjected topre-encoding processing depending on the type of particular video file.In one embodiment, no pre-encoding processing is required if a videofile is AVI wrapped (i.e., packaged into AVI or AVI-like file multimediafile container) and is in one of the following formats: YUV422,RAW/uncompressed, or RGB format. In one embodiment, AVI-packaged videodata is divided into segments, or “chunks.” In one embodiment, each“chunk” is identified by a FourCC tag. In one embodiment, an AVI filetakes the form of a single chunk in a RIFF formatted file, which can bethen subdivided into two mandatory “chunks” and one optional “chunk”. Inone embodiment, the first sub-chunk is identified by the “hdrl” tag. Inone embodiment, the “hdrl” chunk is the file header and containsmetadata about the video, such as its width, height and frame rate. Inone embodiment, the second sub-chunk is identified by the “movi” tag. Inone embodiment, the “movi” chunk contains the actual audio/visual data.In one embodiment, the third optional sub-chunk can be identified by the“idxl” tag which indexes the offsets of the data chunks within theAVI-wrapped file. In one embodiment, the audio-visual data contained inthe “movi” chunk can be encoded or decoded by software called a codec,which is an abbreviation for (en)coder/decoder. In one embodiment, uponcreation of the file, the codec translates between raw data and the(compressed) data format used inside the chunk. In one embodiment, the“movi” chunk data is further segmented into segments of 5 frames. In oneembodiment, the “movi” chunk data is further segmented into equalsegments of between 5 and 1000 frames. In one embodiment, instead ofAVI-like wrapper, the instant invention can use another suitable wrapper(multimedia container) that has streamable feature (i.e., ability toconstantly received by and presented to an end-user while beingdelivered by a streaming provider).

In one embodiment, pre-encoding processing is required if a video fileis not in the form described above. In one embodiment, the pre-encodingprocessing can include a conversion into AVI-like wrapper format (i.e.,an intermediary transport format) and color space conversion to YUV422for all frames on the frame-by-frame basis.

In one embodiment, initial processing is perform in chunks/segments of 5frames per segment/chunk. In one embodiment, initial processing isperform in chunks/segments of 50 frames per segment/chunk. In oneembodiment, initial processing is perform in chunks/segments of 100frames per segment/chunk. In one embodiment, initial processing isperform in chunks/segments of 250 frames per segment/chunk. In oneembodiment, initial processing is perform in chunks/segments of 1000frames per segment/chunk. In one embodiment, initial processing isperform in chunks/segments between 5 and 1000 frames per segment/chunk.

In one embodiment, the initial pre-compression processing of color spaceconversion is about 0.00031 seconds per frame or less. In oneembodiment, initial pre-compression processing of color space conversionis 001 seconds per frame or less. In one embodiment, initialpre-compression processing of color space conversion is 0.01 seconds perframe or less. In one embodiment, initial pre-compression processing ofcolor space conversion is 0.0005 seconds per frame or less.

Example 2 Some Aspects of Warp Compression Algorithms

In one embodiment, the Warp compression works by encoding sets of 5frames (i.e., dividing original or intermediately/pre-processed fileinto sets of 5 frames). In one embodiment, a frame 3 in the set of 5frames is designated to be a key frame—i.e., the entire actual contentof remaining frames 1,2,4, and 5 will be compared against the actualcontent of frame 3 and the key frame will be encoded in a form oforiginal frame. In one embodiment, frames 1, 2, 4, and 5 are designatedto be difference frames. In one embodiment, the difference frames arecomputed against the key frame 3. In one embodiment, the standarddeviation of all pixel differences in luminance channel is computed todetermine whether frames 1, 2, 4, and 5 should be encoded as differenceframes or in the original form. In one embodiment, if the standarddeviation is less than 5 (a pre-determined value), a difference frame isutilized. In one embodiment, if the standard deviation is greater than5, the original image is utilized.

In one embodiment, after the above difference/original frame analysis isperformed, the set of resulting 5 frames (5 frames in original format,or 4 difference frames and 1 original (i.e., the key frame) is subjectto multiscale wavelet compression that is applied to each frame on theframe-by-frame basis. In one embodiment, the multiscale waveletcompression utilizes a Cohen-Daubechies-Feauveau (CDF) 9/7 floatingpoint transform in 5 levels of resolution as lossy compression.

In one embodiment, the processing time for group of 5 frame thatincludes segmentation into set of 5 frames, color space conversion, thekey frame/difference frame conversion, and wavelet conversion is about0.00140 seconds per frame or less. In one embodiment, the processingtime for group of 5 frame that includes segmentation into set of 5frames, color space conversion, the key frame/difference frameconversion, and wavelet conversion is about 0.00250 seconds per frame orless. In one embodiment, the processing time for group of 5 frame thatincludes segmentation into set of 5 frames, color space conversion, thekey framde/defference frame conversion, and wavelet conversion is about0.005 seconds per frame or less. In one embodiment, the processing timefor group of 5 frame that includes segmentation into set of 5 frames,color space conversion, the key framde/defference frame conversion, andwavelet conversion is about 0.0001 seconds per frame or less.

In one embodiment, after the multiscale wavelet compression, the set of5 frames is further subject to a Human Visual Systems (HVS) filter. Inone embodiment, the HVS filter employs a gamma function to stretch outthe tones in highlights so they receive more bits than shadows (e.g.,converting Y to Y′ for YUV422 format). Gamma correction, gammanonlinearity, gamma encoding, or often simply gamma, is a nonlinearoperation used to code and decode luminance or tristimulus values invideo or still image systems. In one embodiment, gamma correction is, inthe simplest cases, defined by the following power-law expression:

V_(out)=AV_(in) ^(γ)

where A is a constant and the input and output values are non-negativereal values; in the common case of A=1, inputs and outputs are typicallyin the range 0-1. A gamma value γ<1 is sometimes called an encodinggamma, and the process of encoding with this compressive power-lawnonlinearity is called gamma compression; conversely a gamma value γ>1is called a decoding gamma and the application of the expansivepower-law nonlinearity is called gamma expansion.

In one embodiment, the HVS filter uses a gamma function to stretch outthe tones in the highlights so they receive more bits than the shadowsbecause the human eye is sensitive to banding and contouring in lighttones.

In one embodiment, the HVS filter processing time for group of 5 frameis about 0.0397 seconds per frame or less. In one embodiment, the HVSfilter processing time for group of 5 frame is about 0.05 seconds perframe or less. In one embodiment, the HVS filter processing time forgroup of 5 frame is about 0.03 seconds per frame or less. In oneembodiment, the HVS filter processing time for group of 5 frame is about0.02 seconds per frame or less.

In one embodiment, after the multiscale wavelet compression, the set of5 frames is further subject to signal to noise ratio is selected foreach frame. In one embodiment, the key frame or original image issubject to signal to noise ratio of 50 db which is visually losslesscompression that is able to capture the film grain. In one embodiment,the difference frames are subject to signal to noise ratio of 30 dbwhich is visually lossy, allowing to convey just enough difference atthe film grain scale to differentiate the image from the key frame sothat the film grain does not remain static.

In one embodiment, for 30 db snr processing of a difference frame, thefilm grain from the key frame provides most of the detail and thedifference frame simply differentiates the frame in very few bits. Theresult is a reconstructed difference frame with excellent apparent filmgrain that is different from the key frame. In one embodiment, the filmgrain is a visually lossless (not lossless) version of the actual filmgrain for that difference frame, but is based on similar statisticalmodeling to appears plausible and visually lossless (e.g., usingstatistical score to place film grain during decoding stage in the sameor substantially the same area where the film grain was present in theoriginal frame). In one embodiment, because of the similar statisticalscore between the actual film grain and the reconstructed film grain,the larger features can be typically visually lossless uponreconstruction. In one embodiment, the above approach of employingsimilar statistical score of the actual (original) film grain can allowthe instant invention to preserve quality for especially hard tocompress elements such as random noise. In one embodiment, thesignal-to-noise ratio (snr) measurement can be further modulated bytone, artificially lowering the measure in the highlights so it getsmore bits. Visual lossless quality (statistically random elementpreservation)

For example, FIGS. 8-11 illustrate the contrast between the film grainprocessing employed by the instant invention and other compressions.FIG. 8 shows an original image that has heavy film grain. FIGS. 9-11show differences between the original image of FIG. 8 and images of FIG.8 that resulted from the original image of FIG. 8 being encoded by usingcompression protocols of MPEG2 (FIG. 9), H.264 (FIG. 10), and someembodiments of the instant invention (FIG. 11). The difference betweenthe original image FIG. 9 and images of FIG. 9 that were encoded bycorresponding protocol was estimated by using a perceptual image difftool provided at http://pdiff.sourceforge.net. The perceptual image difftool compares between two images and outputs the pixel differences asblue and no change as black (for purposes of reproduction, theperceptual image diff tool images were converted into gray scale,rendering blue into black and black into white colors). This analysisshows that some embodiments of the instant invention were able toachieve smaller pixel-by-pixel difference in the film grainreconstruction to the original image than other types of imagecompression methods, schemes, algorithms, or codecs.

In one embodiment, the total encode processing time (examples 1 and 2)for group of 5 frame is about 0.04141 seconds per frame or less. In oneembodiment, the total encode processing time (examples 1 and 2) forgroup of 5 frame is about 0.075 seconds per frame or less. In oneembodiment, the total encode processing time (examples 1 and 2) forgroup of 5 frame is about 0.1 seconds per frame or less. In oneembodiment, the total encode processing time (examples 1 and 2) forgroup of 5 frame is about 0.035 seconds per frame or less. In oneembodiment, the total encode processing time (examples 1 and 2) forgroup of 5 frame is about 0.025 seconds per frame or less. In oneembodiment, the total encode processing time (examples 1 and 2) forgroup of 5 frame is about 0.02 seconds per frame or less. In oneembodiment, the total encode processing time (examples 1 and 2) forgroup of 5 frame is about 0.04 seconds per frame or less.

In one embodiment, the initial pre-compression and compressionprocessing of the file occurs in parallel (in concurrent manner orsubstantially simultaneously—at least a portion of one process occurs atthe same time as another processes is performed) with the transmissionprocessing describe below in example 3.

In one example of applying the instant invention to MRI images (MRIdatasets contain image slices that are highly spatially correlated andso benefit greatly from difference encoding), in one embodiment, theinstant invention can select a particular, pre-determine, differencedecision threshold and the snr for both difference and original imagessuch that fine structure at the limits of the imaging system areconveyed in a visually lossless manner. In one embodiment, since medicalimaging has typically no use for aesthetic reproduction of any imagedata so the snr of difference images can be raised to 50 db to match theoriginal images. In such case, the delta compression standard deviationdecision would be adjusted to preserve detail at the limit of theimaging system while still exploiting the high levels of spatialcorrelation seen in MRI images.

Example 3 Some Aspects of Transmission Processing

In one embodiment, after the Warp compression is performed for the setof 5 frames as described in Example 2, the instant invention transmitthe encoded frames (i.e., frames process as described in Examples 1 and2) by applying, for example, the following buffer encode protocol. Inone embodiment, the sets of 5 encoded frames can be grouped fortransmission based at least in part on the size of each frame(width×height). In one embodiment, the minimum grouping is 5 frames forframes with ultra-high resolutions of 204×1156 and 4096×2312. In oneembodiment, anther groupings can include 20 frames for frames havingresolution of 1080p. In one embodiment, anther groupings can include 50frames for frames having resolution of 720p. In one embodiment, groupsize can depends on variables in transfer speed between sender andreceiver, transmission protocol (e.g., TCP, UDP), network bandwidth(e.g., available network transmission pipe size), and/or network latency(e.g., communication delay between network packets, can increases withgeographical distance).

In one embodiment, the encoded (compressed) segments (e.g., set of 5frames) are placed in a set of buffers. In one embodiment, the size ofeach buffer can be 10 MB or other size. In one embodiment, the size ofeach buffer depends on the optimum synchronization of processing powerutilization between the encoding and decoding processes of the sendingand receiving units respectively. In one embodiment, the optimumsynchronization of processing power utilization between the encoding anddecoding processes must be above 98%. In one embodiment, the optimumsynchronization of processing power utilization between the encoding anddecoding processes must be above 99%. In one embodiment, the optimumsynchronization of processing power utilization between the encoding anddecoding processes must be above 95%. In one embodiment, the optimumsynchronization of processing power utilization between the encoding anddecoding processes must be above 90%. In one embodiment, the optimumsynchronization of processing power utilization between the encoding anddecoding processes must be substantially 100%.

In one embodiment, if the original file size is 10 MB (Megabyte) orabove, the transmission will not occur until 10 MB buffer is filled. Inone embodiment, if the original file size is 10 MB (Megabyte) or above,the subsequent transmission will not occur until full 10 MB buffer isreplenished with the new encoded data. In one embodiment, if theoriginal file size is 10 MB (Megabyte) or above, after the transmissionbegins upon the first buffer reaching full 10 MB, the instant inventionwill continue to transmit without waiting for the full replenishment ofthe 10 MB buffer.

In one embodiment, if the file size is below 10 MB, all of the encodeddata fits into one buffer and the buffer encoding/creation stops.

In one embodiment, after the buffer encoding, the filled buffer is readand transmitted. In one embodiment, Maximum Transmission Unit value(MTU), which is the size of NDB, is capped to 1500 bytes. In oneembodiment, MTU value can range from 1500 bytes to 1000 Kb (Kilobytes).In one embodiment, MTU value can range from 10,000 bytes to 2000 Kb(Kilobytes). In one embodiment, MTU value can range from 1000 bytes to500 Kb (Kilobytes). In one embodiment, MTU value can range from 1500bytes to 500 Kb (Kilobytes).

In one embodiment, the transmitting module of the sending machince waitsfor a transmit request from a recipient machine. In one embodiment, thetransmitting module of the sending machine does not wait for a transmitrequest from a recipient machine and transmit as soon as the bufferencoding conditions are fulfilled. In one embodiment, the 10 MB requestscan be processed 1 MB at a time. (e.g., 10 calls for 10 MB) In oneembodiment, the 10 MB requests can be processed 0.5 MB at a time. (e.g.,20 calls for 10 MB) In one embodiment, the size of the call depends onthe same variable as used to breakdown encoded data into groups duringthe buffer encoding.

In one embodiment, the receiving machine continues to request 10 MBuntil the entire file has been transferred. In one embodiment, thesending machine continues to send from 10 MB buffers until the entirefile has been transferred.

In one embodiment, the empty buffers returns for further processing.

In one embodiment, the receiving machine continues to request 10 MBbuffers until the end point is read. In one embodiment, after the endpoint is read, the transfer is complete. In one embodiment, the endpoint is read from the header information Initiation (Example 11 below).

Example 4 Some Aspects of Decompression Processing

In one embodiment, the decoding is an inverse order of the encodingprocessing of the Warp compression described above in the example 2. Inone embodiment, as at least one buffer of the recipient machine fills inwith the arriving encoded NDBs which have been processed and transmittedas described in examples 1-3 above.

Example 5 Some Aspects of Synchronizing Compression, Transmission, andDecompression Processing

In one embodiment, sending machine selects one or more videos or seriesof images and one or more destinations and initiates the processing inaccordance with the instant invention. In one embodiment, when a sendrequest is initiated, the processing of the file (Examples 1 & 2) occursin parallel (in concurrent manner or substantially simultaneously—atleast a portion of one process occurs at the same time as anotherprocesses is performed) with the transmission (example 3). In oneembodiment, because difference images are only used for a single timestep (e.g., frame-by-frame processing), no error accumulation is seenbetween the encoder and decoder that would require additional bits tocorrect, resulting in savings of bits for quality processing instead ofbeing used up for the synchronization of encoding and decodingprocessing.

In one embodiment, similar to the buffer encoding on the sendingmachine, for optimum processing power, the decoding processing will notstart until the buffer of receiving unit receives 10 Megabytes of bufferdata for files whose file size is 10 MB or above. In one embodiment,when the buffer is finished and there is no end point on the buffer, thereceiving machine makes an additional request to the sender for anotherbuffer. In one embodiment, when the end point is read no additionalrequests for buffers from the sender are made. In one embodiment, theend point is read from the header information Initiation (Example 11below).

In one embodiment, if the size of the original file is less than thedecoding buffer size, the recipient machine creates only one decodingbuffer. In one embodiment, the received encoded data is decoded untilthe end of the buffer.

Example 6 Some Aspects of Syncronization of Multi-Recipient Compression,Decompression and Transmission Processing

In one embodiment, Machine A can send the data of encoded frames (NDBs)to Machine B and Machine C. In one embodiment, stages 1-2 (examples 1&2)occur on Machine A generates first transmission chunk (set of NDBs) madefrom sets of 5 encoded frames. In one embodiment, as described in theexample 3, Machine A transmits the encoded NDBs to Machine B. In oneembodiment, Machine B receives first encoded transmission (set of NDBs)(e.g., a chunk of 1 MB) and begins decoding of first group. In oneembodiment, at the same time, Machine B begins transmission of the firstencoded group (received from Machine A and without performing additionalrecompression by Machine B) to Machine C. In one embodiment, Machine Creceives first encoded transmission and begins decoding of the firstgroup. In one embodiment, stages 1-2 (examples 1&2) occur on Machine Ato generate the second transmission chunk. In one embodiment, asdescribed in the example 3, Machine A transmits the encoded NDBs of thesecond chunk to Machine B. In one embodiment, Machine B receives secondencoded transmission and begins decoding of the second group asdescribed in example 4. In one embodiment, at the same time, Machine Bbegins transmission of second encoded group (received from Machine A) toMachine C. In one embodiment, Machine C receives second encodedtransmission and begins decoding of the second group.

Example 7 Some Aspects of Post-Decompression Processing

Referring to FIG. 7. In one embodiment, if no change was requested onthe receiving machine, the receiving machine performs the decoding(701)—the inverse order of the image Warp compression (see example 2)into an intermediary RAW format,—and then performs the post-conversionprocessing (transcoding) in the inverse order of the pre-conversionprocessing of example 1 (702 step). In one embodiment, if a differentformat is desired, the receiving machine performs the decoding(701),—the inverse order of the image Warp compression (see example 2)into an intermediary RAW format,—and then performs the post-conversionprocessing (transcoding) in the inverse order of the pre-conversionprocessing of example 1 into the desired file format (703 step).

In one embodiment, the total decode and post-decoding (transcribing intooridinal file format or different) processing time (examples 3 and 7) isabout 0.04984 seconds per frame or less. In one embodiment, the totaldecode and post-decoding (transcribing into oridinal file format ordifferent) processing time (examples 3 and 7) is about 0.055 seconds perframe or less. In one embodiment, the total decode and post-decoding(transcribing into oridinal file format or different) processing time(examples 3 and 7) is about 0.07 seconds per frame or less. In oneembodiment, the total decode and post-decoding (transcribing intooridinal file format or different) processing time (examples 3 and 7) isabout 0.01 seconds per frame or less. In one embodiment, the totaldecode and post-decoding (transcribing into oridinal file format ordifferent) processing time (examples 3 and 7) is about 0.04 seconds perframe or less. In one embodiment, the total decode and post-decoding(transcribing into oridinal file format or different) processing time(examples 3 and 7) is about 0.035 seconds per frame or less. In oneembodiment, the total decode and post-decoding (transcribing intooridinal file format or different) processing time (examples 3 and 7) isabout 0.025 seconds per frame or less.

Examples of Some Aspects of Methods and Systems of the Instant InventionFor Processing Non-Image Data or Image Data Compressed By OtherCompressions (e.g., zip file, xml, h.264 compressed video, etc.).Example 8 Some Aspects of Archive Send Compression

In one embodiment, there is no pre or post conversion process for theArchive Send encoding processing. In one embodiment, the Archive Sendencoding can be based on LZMA algorithm and follow the following steps:

a) Buffer creation (Sending machine):

-   -   1) In one embodiment, after the initialization, a set of 10 MB        buffers are created.    -   2) In one embodiment, buffers can be used simultaneously for        LZMA (e.g., 8 buffers used simultaneously, in parallel).        -   i) In one embodiment, if the file size is 10 MB (Megabytes)            or above, network transmission will not initiate until a 10            MB buffer is filled.        -   ii) In one embodiment, if the file size is below 10 MB, all            of the data is put into one buffer.    -   3. In one embodiment, requests from the recepint machine are        processed in similar manner described in example 3.    -   4. In one embodiment, LZMA processed segments (encoded pieces)        are streamed into the buffer.    -   5. In one embodiment, as soon as the buffer is filled, the        transmission starts (see example 9).

Example 9 Some Aspects of Archive Send Transmission Processing

In one embodiment, the Archive Send encoding and transmission occursubstantially parallel (in concurrent manner or substantiallysimultaneously—at least a portion of one process occurs at the same timeas another processes is performed). In one embodiment, the Archive Sendtransmission proceeds similarly as described in examples 3, 5 and 6.

Example 10 Some aspects of Archive Send decode processing

In one embodiment, the Archive Send transmission proceeds similarly asdescribed in examples 4-7. 3. In one embodiment, the received NDBs aredecoded from the Archive Send stream into the original file losslessly(bit for bit identical) by using the same LZMA algorithm that is usedfor encoding (example 8).

Examples Of Some Aspects of Initiation Procedure for Invoking Warp Sendor Archive Send Methods and Systems of the Instant Invention Example 11Header Information

In some embodiments, the header information for files can includes: filename, file type, file size, etc. In some embodiments, the headerinformation for videos or a series of images can include: Video codec,audio codec, resolution (width×height), bitrate. In some embodiments, ifthe file contains a video codec and the video codec is supported by WarpSend, the Warp Send processing (examples 1-7) will begin. In someembodiments, if the file does not contain a video codec or the videocodec is not supported by the Warp Send compression, the Archive Sendcompression (e.g., LZMA, Crush, LZ/lb, etc.) (examples 8-10) will begin.In some embodiments, for both, the Warp Send processing and the ArchiveSend compression (e.g., LZMA, Crush, LZ/lb, etc.), when a send requestis initiated, the processing of the file (pre-compression andcompression stages) occurs in parallel (in concurrent manner orsubstantially simultaneously—at least a portion of one process occurs atthe same time as another processes is performed) with the transmission(examples 3, 5-6, and 9).

FIG. 9 shows an embodiment of computer unit that can simultaneously orseparately function as both sending and receiving computer unit.

In some embodiments, the instant invention includes acomputer-implemented method that includes at least steps of: a)dividing, by a first computer, a computer file into at least one firstsegment and a first remainder of the computer file; b) compressing, by asecond computer, the at least one first segment wherein, in concurrentmanner, the second computer compresses the at least one first segmentand the first computer divides the first remainder of the computer fileinto at least one second segment and a second remainder of the computerfile; c) sending, by a third computer, the at least one first compressedsegment to at least one recipient machine wherein, in concurrent manner,the third computer sends the at least one first compressed segment, thesecond computer compresses the at least one second segment, and thefirst computer divides the second remainder of the computer file into atleast one third segment and a third remainder of the computer file; d)receiving, by a fourth computer of the recipient machine, the at leastone first compressed segment wherein, in concurrent manner, the fourthcomputer of the recipient machine receives the at least one firstcompressed segment, the first computer divides the third remainder ofthe computer file into at least one fourth segment and a fourthremainder of the computer file, the second computer compresses the atleast one third compressed segment, and the third computer sends the atleast one second compressed segment; e) decompressing, by a fifthcomputer of the recipient machine, the at least one first receivedcompressed segment wherein, in concurrent manner, the fifth computer ofthe recipient machine decompresses the at least one first receivedcompressed segment, the first computer divides the fourth remainder ofthe computer file into at least one fifth segment and a fifth remainderof the computer file, the second computer compresses the at least onefourth segment, the third computer sends the at least one thirdcompressed segment, and the fourth computer of the recipient machinereceives the at least one second compressed segment; f) decompressing,by the fifth computer of the recipient machine, the at least one secondreceived compressed segment wherein, in concurrent manner, the fifthcomputer of the recipient machine decompresses the at least one secondreceived compressed segment and the fourth computer of the recipientmachine receives the at least one third compressed segment and whereinthe compressing step and the decompressing are synchronized; and g)assembling, by a sixth computer of the recipient machine, the at leastone first decompressed segment and the at least one second decompressedsegment to reconstruct the computer file wherein, in concurrent manner,the sixth computer of the recipient machine assembles the at least onefirst decompressed segment and the at least one second decompressedsegment, the fifth computer of the recipient machine decompresses the atleast one third received compressed segment, and the fourth computer ofthe recipient machine receives the at least one fourth compressedsegment.

In some embodiments, the compressing, by the second computer, is by atleast applying at least one lossless algorithm (e.g., LZMA, Crush,Lz/lb, Lagarith, etc.) and wherein decompressing, by the fifth computerof the recipient machine, is by at least applying the at least onelossless algorithm with which the file has been compressed

In some embodiments, the instant invention includes acomputer-implemented method that includes at least steps of: a)dividing, by a first computer, a computer image file into at least onefirst segment and a first remainder of the computer file, wherein the atleast one first segment comprise a plurality of frames and wherein thecomputer image file is a video file or an aggregation of static imagefiles; b) compressing, by a second computer, the at least one firstsegment wherein the compressing includes at least the following stepsof: 1) selecting a key frame from the plurality of frames of the atleast one first segment, 2) comparing the key frame to each of theremaining frames from the plurality of frames of the at least one firstsegment, wherein the comparison is performed frame-by-frame based atleast in part on: a) actual content of each frame and b) an entire framebasis, 3) encoding, if a standard deviation of all pixel differences inluminance channel between the key frame is less than a pre-determinevalue, at least one frame of the remaining frames as at least onedeference frame, wherein the at least one deference frame identifies atleast one difference between the key frame and the encoded frame of theremaining frames, 4) applying lossy compression to the key frame and thedeference frames of the plurality of frames of the at least one firstsegment, wherein the lossy compression is multiscale wavelet compressionand comprising Human Visual Systems (HVS) filtering to stretch out tonesin the key frame and the deference frames of the plurality of frames ofthe at least one first segment, and 5) applying, after the lossycompression, a signal to noise ratio processing to the key frame and thedeference frames of the plurality of frames of the at least one firstsegment; and c) decompressing, by a third computer, the plurality offrames of the at least one first segment wherein the decompressing isperformed in a inverse order of the compressing steps (c) (1) through(c)(5).

In some embodiments, the instant invention includes acomputer-implemented method that includes at least steps of: a)dividing, by a sending computer, a first computer file into at least onefirst segment and a first remainder of the computer file, wherein thefirst computer file having a first computer format; b) compressing, bythe sending computer, the at least one first segment; c) transmitting,by the sending computer, the at least one first compressed segment to arecipient machine; d) dividing, by a sending computer, the firstremainder of the computer file into at least one second segment; e)compressing, by the sending computer, the at least one second segment;f) transmitting, by the sending computer, over a network, the at leastone second compressed segment to a recipient computer; g) decompressing,by the recipient computer, the at least one first compressed segmentinto at least one first decompressed segment; h) transcoding, by therecipient computer, the at least one first decompressed segment into atleast one first converted segment having a second computer format; j)decompressing, by the recipient computer, the at least one secondcompressed segment into at least one second decompressed segment; i)transcoding, by the recipient computer, the at least one seconddecompressed segment into at least one second converted segment havingthe second computer format; and k) assembling, by the recipientcomputer, the at least one first converted segment and the at least onesecond converted segment into a second computer file having the secondcomputer format, wherein the first computer file and the second computerfile have the same content and wherein the first computer format and thesecond computer format are different. In some embodiments, the steps (h)and (i) are performed in concurrent manner.

In some embodiments, the instant invention includes a computer systemthat includes at least the following components: a) a first computerthat divides a computer file into at least one first segment and a firstremainder of the computer file; b) a second computer that compresses theat least one first segment wherein, in concurrent manner, the secondcomputer compresses the at least one first segment and the firstcomputer divides the first remainder of the computer file into at leastone second segment and a second remainder of the computer file; c) athird computer that sends the at least one first compressed segment toat least one recipient machine wherein, in concurrent manner, the thirdcomputer sends the at least one first compressed segment, the secondcomputer compresses the at least one second segment, and the firstcomputer divides the second remainder of the computer file into at leastone third segment and a third remainder of the computer file; d) afourth computer of the recipient machine that receives the at least onefirst compressed segment wherein, in concurrent manner, the fourthcomputer of the recipient machine receives the at least one firstcompressed segment, the first computer divides the third remainder ofthe computer file into at least one fourth segment and a fourthremainder of the computer file, the second computer compresses the atleast one third compressed segment, and the third computer sends the atleast one second compressed segment; e) a fifth computer of therecipient machine that decompresses the at least one first receivedcompressed segment wherein, in concurrent manner, the fifth computer ofthe recipient machine decompresses the at least one first receivedcompressed segment, the first computer divides the fourth remainder ofthe computer file into at least one fifth segment and a fifth remainderof the computer file, the second computer compresses the at least onefourth segment, the third computer sends the at least one thirdcompressed segment, and the fourth computer of the recipient machinereceives the at least one second compressed segment, wherein, inconcurrent manner, the fifth computer of the recipient machinedecompresses the at least one second received compressed segment and thefourth computer of the recipient machine receives the at least one thirdcompressed segment, and wherein the compression by the second computerand the decompression by the fifth computer of the recipient machine aresynchronized; and g) a sixth computer of the recipient machine thatassembles the at least one first decompressed segment and the at leastone second decompressed segment to reconstruct the computer file,wherein, in concurrent manner, the sixth computer of the recipientmachine assembles the at least one first decompressed segment and the atleast one second decompressed segment, the fifth computer of therecipient machine decompresses the at least one third receivedcompressed segment, and the fourth computer of the recipient machinereceives the at least one fourth compressed segment. In someembodiments, the second computer applies at least one lossless algorithm(e.g., LZMA, Crush, Lz/lb, Lagarith, etc.) for the compression andwherein the fifth computer of the recipient machine applies the at leastone lossless algorithm for the decompression with which the file hasbeen compressed.

In some embodiments, the instant invention includes a computer systemthat includes at least the following components: a) a first computerthat divides a computer image file into at least one first segment and afirst remainder of the computer file, wherein the at least one firstsegment comprise a plurality of frames and wherein the computer imagefile is a video file or an aggregation of static image files; b) asecond computer that compresses the at least one first segment whereinthe second computer comprising at least one programmed processor forexecuting the computer executable program code stored in a memory,wherein the computer executable program code that at least include: 1)code to select a key frame from the plurality of frames of the at leastone first segment, 2) code to compare the key frame to each of theremaining frames from the plurality of frames of the at least one firstsegment, wherein the comparison is performed frame-by-frame based atleast in part on: a) actual content of each frame and b) an entire framebasis, 3) code to encode, if a standard deviation of all pixeldifferences in luminance channel between the key frame is less than apre-determine value, at least one frame of the remaining frames as atleast one deference frame, wherein the at least one deference frameidentifies at least one difference between the key frame and the encodedframe of the remaining frames, 4) code to apply lossy compression to thekey frame and the deference frames of the plurality of frames of the atleast one first segment, wherein the lossy compression is multiscalewavelet compression and comprising Human Visual Systems (HVS) filteringto stretch out tones in the key frame and the deference frames of theplurality of frames of the at least one first segment, and 5) code toapply, after the lossy compression, a signal to noise ratio processingto the key frame and the deference frames of the plurality of frames ofthe at least one first segment; c) a third computer that decompressesthe plurality of frames of the at least one first segment wherein thedecompression is performed by the third computer in a inverse order ofthe compressing steps (c) (1) through (c)(5).

In some embodiments, the instant invention includes a computer systemthat includes at least the following components: 1) a sending computerhaving at least one memory region for first storing computer executableprogram code and at least one first processor for executing the firstcomputer executable program code stored in the at least one first memoryregion, wherein the first computer executable program code that at leastincludes: a) code to divide a first computer file into at least onefirst segment and a first remainder of the computer file, wherein thefirst computer file having a first computer format, b) code to compressthe at least one first segment, c) code to transmit the at least onefirst compressed segment to a recipient machine, d) code to divide thefirst remainder of the computer file into at least one second segment,e) code to compress the at least one second segment, and f) code totransmit, over a network, the at least one second compressed segment toa recipient computer; and 2) a recipient computer having at least onesecond memory region for second storing computer executable program codeand at least one second processor for executing the second computerexecutable program code stored in the at least one second memory region,wherein the second computer executable program code that includes: a)code to decompress the at least one first compressed segment into atleast one first decompressed segment, b) code to transcode the at leastone first decompressed segment into at least one first converted segmenthaving a second computer format, c) code to decompress the at least onesecond compressed segment into at least one second decompressed segment,d) code to transcode the at least one second decompressed segment intoat least one second converted segment having the second computer format,and e) code to assemble the at least one first converted segment and theat least one second converted segment into a second computer file havingthe second computer format, wherein the first computer file and thesecond computer file have the same content and wherein the firstcomputer format and the second computer format are different. In someembodiments, the at least one second processor of the recipient computerexecutes the codes (c) and (d), in concurrent manner.

In one example, the instant invention is applied for delivery files/datato consumers (e.g., TV/movie streaming, etc). In one example, theinstant invention allows for instantly playing functionality in deliveryof consumer content.

While a number of embodiments of the present invention have beendescribed, it is understood that these embodiments are illustrativeonly, and not restrictive, and that many modifications and/oralternative embodiments may become apparent to those of ordinary skillin the art. For example, any steps may be performed in any desired order(and any desired steps may be added and/or any desired steps may bedeleted). For example, the instant invention is not limited tocompression/encoding/decompression/decoding methods described thereinbut may include other compression/encoding/decompression/decodingmethods. Therefore, it will be understood that the appended claims areintended to cover all such modifications and embodiments that comewithin the spirit and scope of the present invention.

What is claimed is:
 1. A computer-irnplentented, method, comprising a)dividing, by a first computer, a computer file into at least one firstsegment and a first remainder of the computer file; b) compressing, by asecond computer, the at least one first segment wherein, in concurrentmanner, the second computer compresses the at least one first segmentand the first computer divides the first remainder of the computer fileinto at least one second segment and a second remainder of the computerfile; c) sending, by a third computer, the at least one first compressedsegment to at least one recipient machine wherein, in concurrent manner,the third computer sends the at least one first compressed segment, thesecond computer compresses the at least one second segment, and thefirst computer divides the second remainder of the computer file into atleast one third segment and a third remainder of the computer file; d)receiving, by a fourth computer of the recipient machine, the at leastone first compressed segment wherein, in concurrent manner, the fourthcomputer of the recipient machine receives the at least one firstcompressed segment, the first computer divides the third remainder ofthe computer file into at least one fourth segment and a fourthremainder of the computer file, the second computer compresses the atleast one third compressed segment, and the third computer sends the atleast one second compressed segment; e) decompressing, by a fifthcomputer of the recipient machine, the at least one first receivedcompressed segment wherein, in concurrent manner, the fifth computer ofthe recipient machine decompresses the at least one first receivedcompressed segment, the first computer divides the fourth remainder ofthe computer file into at least one fifth segment and a fifth remainderof the computer file, the second computer compresses the at least onefourth segment, the third computer sends the at least one thirdcompressed segment, and the fourth computer of the recipient machinereceives the at least one second, compressed segment; f) decompressing,by the fifth computer of the recipient machine, the at least one secondreceived compressed segment wherein, in concurrent manner, the fifthcomputer of the recipient machine decompresses the at, least, one secondreceived compressed segment and the fourth computer of the recipientmachine receives the at least one third compressed segment and whereinthe compressing step and the decompressing are synchronized; and g)assembling, by a sixth computer of the recipient machine, the at leastone first decompressed segment and the at least one second decompressedsegment to reconstruct the computer file wherein, in concurrent manner,the sixth computer of the recipient machine assembles the at least onefirst decompressed segment and the at least one second decompressedsegment, the fifth computer of the recipient machine decompresses the atleast one third received compressed segment, and the fourth computer ofthe recipient machine receives the at least one fourth compressedsegment.